/*Tableau associatif global qui répertorie toutes les données nécessaires*/
var v = new Array();
window.addEventListener('load', initialisation, false);

//var Spire = require('spireio.js');
/*var spire = new Spire();
spire.subscribe('channel name', function(messages){
  $(messages).each(function(i, message){
    console.log('new message!', message);
  });
});*/

function initialisation(){
	/*infos concernant le joueur actif*/
	v["joueur"] = {	ident : Math.floor(Math.random()*10000000000), 
					pseudo : null, 
					dom : document.getElementById("joueur"),
                    backgroundDom : document.getElementById("player1"), 
					playgroundDom : document.getElementById("playground-player1"),
                    backgroundPos : 0, 
					backgroundId : (Math.floor(Math.random()*2))%2, 
                    persoId: (Math.floor(Math.random()*2))%2 ,
					bSaute : false,
					hauteur : 42,
					occurSaute : -10,
                    y : parseInt(document.getElementById("joueur").style.top.substr(0, document.getElementById("joueur").style.top.length-2), 10),
                    lasty : parseInt(document.getElementById("joueur").style.top.substr(0, document.getElementById("joueur").style.top.length-2), 10),
                    onABlock : false, 
					underABlock : false,
					rage:100, 
					furious:100, 
					objets : new Array(),
                    vies : 3, ligne : 0, col : 0,
					canvas: document.querySelector('#canvas-joueur'),
					context: document.querySelector('#canvas-joueur').getContext('2d')
                    };
	/*Infos concernant l'adversaire*/
	v["joueur-dist"] = { ident : null, 
					pseudo : null, 
					dom : document.getElementById("opponent"),
                                        backgroundDom : document.getElementById("player-dist"), 
					playgroundDom : document.getElementById("playground-player-dist"),
                                        backgroundPos : 0, 
					bSaute : false,
					hauteur : 42,
					onABlock : false, 
					underABlock : false,
					rage:100, 
					furious:100,
					occurSaute : -10,
                    vies : 3, ligne : 0, col : 0,
					canvas: document.querySelector('#canvas-joueur-dist'),
					context: document.querySelector('#canvas-joueur-dist').getContext('2d')
                    };
	/*Données de la bulle de discution*/
	v["bulle"] = { 	dom : document.getElementById("bulle"), 
					indiceOpacity : 0, 
					bNewMessage: false, 
					bVisible:false,
					b1Trans: false, 
					b2Trans: false
					};
	
	v["bulle"].dom.style.opacity = 0;
	v["joueur"].backgroundDom.style.backgroundImage = "url('images/background"+v["joueur"].backgroundId+".png')";
	if(v["joueur"].persoId == 0){ v["joueur"].dom.src = 'images/alice.png';}
	else{ v["joueur"].dom.src = 'images/pikachuskate.png';}
   
	v["timer"] = setInterval("incrementeTimer()", 40);
	v["timerCount"] = 0;
	v["item"] = new Array();
    v["weapon"] = new Object();
	v["weapon"].FireBullet = {"dom" : new Object(), "enable" : false, "x" : 0, "y" : 0 };
	v["weapon"].FireBullet.number = 5;
	v["item"].Shield = {"dom": new Object(), "x" : 0, "y" : 0 , "number" :5};
	/*v["item"].Shield.number = 5;*/
	v["item-dist"] = new Array();
	v["constantes"] = {"background" : new Array(2091,3215), "posX": 180, "posXof" : v["joueur"].dom.offsetLeft , "joueurH" : 40 , "joueurW": 30, "blockW" : 16, "blockH":16, "posYinit":142};
	v["constantes"].focusOnMessage = false;
	v["constantes"].indiceAffichage = 2;
	v["constantes"].bNewMessage = false;
	v["constantes"].incrementeWaiting = 0;
	v["constantes"].displayItemDist = false;
	
	v["constantes"].matrix = new Array();
	
	
	v["pattern"] = new Array();
	v["pattern-temp"] = new Array();
	v["pattern-dist"] = new Array();
	/*v["item-wl"] = new Array();
	v["item-dist-wl"] = new Array();*/
	initItems();
	initPattern();
	
	document.getElementById("pseudo_local").addEventListener("change", listenPseudoLocal, false);
	document.getElementById("pseudo_distant").addEventListener("change", listenPseudoDistant, false);
	document.getElementById("player1").addEventListener("click", sauterLocal, false);
	document.getElementById("body").addEventListener("keydown", keyDown, false);
	document.getElementById("message").addEventListener("keydown", function(e){
        if(e.keyCode == 13){ 
                ajoutTextChat(v["joueur"].pseudo, document.getElementById("message").value);
                document.getElementById("message").value = "";
        }
	}, false);
	document.getElementById("envoyer").addEventListener("click", function(){
		ajoutTextChat(v["joueur"].pseudo, document.getElementById("message").value);
        document.getElementById("message").value = "";
	}, false);
	document.getElementById("message").addEventListener("focus", function(){
		v["constantes"].focusOnMessage = true;
	}, false);
	document.getElementById("message").addEventListener("blur", function(){
		v["constantes"].focusOnMessage = false;
	}, false);
	
	//On push les informations importantes:
	
	
}

function listenPseudoLocal()
{
    v["joueur"].pseudo = document.getElementById("pseudo_local").value;
}
function listenPseudoDistant()
{
    v["joueur-dist"].pseudo = document.getElementById("pseudo_distant").value;
    v["joueur-dist"].ident = null;
}
function keyDown(e)
{
    if(e.keyCode == 32 && !v["constantes"].focusOnMessage){sauterLocal();}
    if(e.keyCode == 13){ 
            if(!v["constantes"].focusOnMessage){ document.getElementById("message").focus();}
            else{ document.getElementById("message").blur();}
    }
    if(e.keyCode == 103 && !v["constantes"].focusOnMessage){
            ShotFireBullet();
    }
	if(e.keyCode == 104 && !v["constantes"].focusOnMessage){
			GetShield();
	}
}